//
// Created by denglibin on 2021/6/2.
//
/*
 * 问题描述
A、B、C、D、E这5个人合伙夜间捕鱼，凌晨时都已经疲惫不堪，于是各自在河边的树丛中找地方睡着了。第二天日上三竿时，A第一个醒来，他将鱼平分为5份，把多余的一条扔回河中，
 然后拿着自己的一份回家去了；B第二个醒来，但不知道A已经拿走了一份鱼，于是他将剩下的鱼平分为5份，扔掉多余的一条，然后只拿走了自己的一份；
 接着C、D、E依次醒来，也都按同样的办法分鱼。问这5人至少合伙捕到多少条鱼？每个人醒来后所看到的鱼是多少条？
 * */
#include "stdio.h"

/**
 *
 * @param n 几个人
 * @param x 当前鱼数量
 * @return 1：满足条件 0：不满足条件
 */
int fish(int n, int x){
    if((x -1) % 5 == 0){ //条件 当前鱼数量扔掉一条后能够被5整除
        if(n == 1){ //到最后一个人了
            return 1; //递归出口
        }
        return fish(n-1, (x-1) / 5 *4); // n-1个人时 也要满足条件
    }
    return 0; //不符条件
}
int main10(){

    int  x = 6; //最小 有6条鱼
    while (!fish(5, x)){
        x += 5; //5个人， 至少加5
    }
    printf("total:%d\n", x); //5个人时看到的鱼总数
    for(int i = 4; i >=1; i--){  //后4个人看到的鱼总数
        x = (x-1)/5 * 4;
        printf("%d: %d\n", i, x);
    }
    return 0;
}